home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
probots.arc
/
BYEBYE.PR
< prev
next >
Wrap
Text File
|
1991-04-28
|
2KB
|
87 lines
PROCEDURE byebye;
VAR
direction,degrees,range,speed,counter,old_damage : integer;
center_distance,heading,corner_number,x,y,old_range : integer;
PROCEDURE corner(corner_number:integer);
begin {move robots to 1 of the 4}
CASE corner_number OF {corners on the screen}
0: begin
drive(degrees,speed);
end;
1: begin
REPEAT;
drive(180,100);
UNTIL loc_x<150;
REPEAT;
drive(90,100);
UNTIL loc_y>850;
drive(0,0);
end;
2: begin
REPEAT;
drive(0,100);
UNTIL loc_x>850;
REPEAT;
drive(90,100);
UNTIL loc_y>850;
drive(0,0);
end;
3: begin
REPEAT;
drive(180,100);
UNTIL loc_x<150;
REPEAT;
drive(270,100);
UNTIL loc_y<150;
drive(0,0);
end;
4: begin
REPEAT;
drive(0,100);
UNTIL loc_x>850;
REPEAT;
drive(270,100);
UNTIL loc_y<150;
drive(0,0);
end;
end;
end;
PROCEDURE photons(VAR direction,range,counter:integer);
begin
degrees:=0;
REPEAT {until 1 complete revolution}
range:=scan(degrees,5);
IF (range<>0) THEN {anything there}
begin
REPEAT
cannon(degrees,range);
range:=scan(degrees,5);
UNTIL range=0;
degrees:=degrees-40;
end {shoot'em till he ain't there}
ELSE degrees:=(degrees+10) MOD 360; {increment scan direction}
UNTIL damage>old_damage;
end;
BEGIN {Main joe}
speed := 0;
degrees := 0;
direction := 0;
corner_number:=4;
counter:=0;
drive(degrees,speed);
REPEAT
corner_number:=(corner_number+1) MOD 4;
old_damage:=damage;
REPEAT;
photons(direction,range,counter);
UNTIL damage>old_damage;
corner(corner_number);
UNTIL DEAD or WINNER;
END; {Main}